package com.hw8.intercept;

import com.ehw8.base.domain.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

@ControllerAdvice
@Slf4j
public class GlobalExceptionHandler {

    /**
     * 全局参数异常处理  json形式的参数校验异常处理
     */
    @ExceptionHandler(value= MethodArgumentNotValidException.class)
    @ResponseBody
    public Result bindErrorHandler(MethodArgumentNotValidException e){
        String message = e.getBindingResult().getFieldError().getDefaultMessage();
        return Result.fail(message);
    }

    /**
     * 全局异常处理，反正异常返回统一格式的map
     */
    @ResponseBody
    @ExceptionHandler(value = Exception.class)
    public Result exceptionHandler(Exception e) {
        log.error("服务繁忙",e);
        return Result.fail("服务繁忙");

    }
}
